home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
IRIX 6.2 Development Libraries
/
SGI IRIX 6.2 Development Libraries.iso
/
dist
/
complib.idb
/
usr
/
share
/
catman
/
p_man
/
cat3
/
complib
/
cupmtr.z
/
cupmtr
Wrap
Text File
|
1996-03-14
|
3KB
|
133 lines
CCCCUUUUPPPPMMMMTTTTRRRR((((3333FFFF)))) CCCCUUUUPPPPMMMMTTTTRRRR((((3333FFFF))))
NNNNAAAAMMMMEEEE
CUPMTR - overwrite the general complex M-by-N matrix C with SIDE = 'L'
SIDE = 'R' TRANS = 'N'
SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
SUBROUTINE CUPMTR( SIDE, UPLO, TRANS, M, N, AP, TAU, C, LDC, WORK, INFO )
CHARACTER SIDE, TRANS, UPLO
INTEGER INFO, LDC, M, N
COMPLEX AP( * ), C( LDC, * ), TAU( * ), WORK( * )
PPPPUUUURRRRPPPPOOOOSSSSEEEE
CUPMTR overwrites the general complex M-by-N matrix C with TRANS = 'C':
Q**H * C C * Q**H
where Q is a complex unitary matrix of order nq, with nq = m if SIDE =
'L' and nq = n if SIDE = 'R'. Q is defined as the product of nq-1
elementary reflectors, as returned by CHPTRD using packed storage:
if UPLO = 'U', Q = H(nq-1) . . . H(2) H(1);
if UPLO = 'L', Q = H(1) H(2) . . . H(nq-1).
AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
SIDE (input) CHARACTER*1
= 'L': apply Q or Q**H from the Left;
= 'R': apply Q or Q**H from the Right.
UPLO (input) CHARACTER*1
= 'U': Upper triangular packed storage used in previous call to
CHPTRD; = 'L': Lower triangular packed storage used in previous
call to CHPTRD.
TRANS (input) CHARACTER*1
= 'N': No transpose, apply Q;
= 'C': Conjugate transpose, apply Q**H.
M (input) INTEGER
The number of rows of the matrix C. M >= 0.
N (input) INTEGER
The number of columns of the matrix C. N >= 0.
AP (input) COMPLEX array, dimension
(M*(M+1)/2) if SIDE = 'L' (N*(N+1)/2) if SIDE = 'R' The vectors
which define the elementary reflectors, as returned by CHPTRD.
AP is modified by the routine but restored on exit.
PPPPaaaaggggeeee 1111
CCCCUUUUPPPPMMMMTTTTRRRR((((3333FFFF)))) CCCCUUUUPPPPMMMMTTTTRRRR((((3333FFFF))))
TAU (input) COMPLEX array, dimension (M-1) if SIDE = 'L'
or (N-1) if SIDE = 'R' TAU(i) must contain the scalar factor of
the elementary reflector H(i), as returned by CHPTRD.
C (input/output) COMPLEX array, dimension (LDC,N)
On entry, the M-by-N matrix C. On exit, C is overwritten by Q*C
or Q**H*C or C*Q**H or C*Q.
LDC (input) INTEGER
The leading dimension of the array C. LDC >= max(1,M).
WORK (workspace) COMPLEX array, dimension
(N) if SIDE = 'L' (M) if SIDE = 'R'
INFO (output) INTEGER
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an illegal value
PPPPaaaaggggeeee 2222